package com.xmall.sys.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xmall.sys.define.dto.role.SysRoleDto;
import com.xmall.sys.define.request.role.RoleListPageQueryRequest;
import com.xmall.sys.define.request.role.RoleQueryRequest;
import com.xmall.sys.define.request.role.RoleUpdateRequest;
import com.xmall.sys.define.request.role.RolePermissionUpdateRequest;
import com.xmall.sys.entity.Role;

import java.util.List;

public interface IRoleService extends IService<Role> {

    /**
     * 详情
     */
    SysRoleDto info(Long id);

    /**
     * 列表
     */
    List<SysRoleDto> list(RoleQueryRequest request);

    /**
     * 分页列表
     */
    Page<SysRoleDto> listPage(RoleListPageQueryRequest request);

    /**
     * 新增
     */
    void saveEntity(RoleUpdateRequest request);

    /**
     * 编辑
     */
    void updateEntity(RoleUpdateRequest request);

    /**
     * 更新角色关联的权限列表
     */
    void updateRolePermission(RolePermissionUpdateRequest request);

    /**
     * 角色关联的权限ID列表
     */
    List<Long> rolePermissionIds(Long roleId);

    /**
     * 删除
     */
    void deleteEntity(Long id);
}
